package com.wdb.annotation.rest;

import com.wdb.annotation.AnonymousAccess;
import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.lang.annotation.*;

/**
 * 自定义 post mapping
 *
 * @author: wendaobai@qq.com
 * @date: 2024/1/11 0011 15:01
 */
@Documented
@Target(ElementType.METHOD)
@AnonymousAccess
@Retention(RetentionPolicy.RUNTIME)
@RequestMapping(method = RequestMethod.POST)
public @interface AnonymousPostMapping {
  /** Alias for {@link RequestMapping#name}. */
  @AliasFor(annotation = RequestMapping.class)
  String name() default "";

  /** Alias for {@link RequestMapping#value}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] value() default {};

  /** Alias for {@link RequestMapping#path}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] path() default {};

  /** Alias for {@link RequestMapping#params}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] params() default {};

  /** Alias for {@link RequestMapping#headers}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] headers() default {};

  /** Alias for {@link RequestMapping#consumes}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] consumes() default {};

  /** Alias for {@link RequestMapping#produces}. */
  @AliasFor(annotation = RequestMapping.class)
  String[] produces() default {};
}
